草庐IT

c++ - 读取 QTcpSocket

全部标签

c - 如何从 ml64.exe(MSVC 64 位 X64 汇编程序)访问线程本地存储?

以下C函数尝试使用线程局部存储变量以线程安全的方式防止多核代码中的递归。但是,由于有些复杂的原因,我需要在X64汇编程序(IntelX86/AMD64位)中编写此函数,并使用VC2010中的ml64.exe进行汇编。如果我使用全局变量,我知道如何执行此操作,但我不确定如何使用具有__declspec(thread)的TLS变量正确执行此操作。__declspec(thread)inttls_VAR=0;voidnorecurse(){if(0==tls_VAR){tls_VAR=1;DoWork();tls_VAR=0;}}注意:这是VC2010踢出来的功能。但是,MASM(ml64.

c++ - C/C++ Windows - ExtractIcon() 不检索所有可执行文件的图标

这只是我正在做的事情的片段:PROCESSENTRY32pe32;pe32.dwSize=sizeof(PROCESSENTRY32);hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);if(hProcessSnap==INVALID_HANDLE_VALUE)return;if(!Process32First(hProcessSnap,&pe32)){CloseHandle(hProcessSnap);//cleanthesnapshotobjectreturn;}do{hProcess=OpenProcess(P

c# - 从注册表读取 – 涉及磁盘?限制阅读权限?

读取是涉及​​磁盘还是只涉及RAM?它是否始终可供阅读,或者是否有任何限制,例如某些用户将降低安全性而无法阅读? 最佳答案 注册表存储在磁盘上,但会被缓存(在某种程度上),因此您基本上是从磁盘读取,尽管有时您会获得缓存版本。虽然一般来说,所有用户都对注册表具有只读访问权限,但有些部分(例如其他用户配置文件)将无法访问。您应该始终对HKEY_LOCAL_MACHINE具有只读访问权限(HKEY_LOCAL_MACHINE\SAM和HKEY_LOCAL_MACHINE\SECURITY除外,它们受到限制并且只能以本地系统权限读取)和HK

c - 在 C 中,多线程,多个窗口调用一个窗口过程,每次调用都会使用新的局部变量还是我需要互斥体?

我试图在标题中解释这一切:我有一个多线程C程序,它将有多个窗口调用一个窗口过程。在窗口过程中完成了一些处理。我是否需要保护它,或者每次调用窗口过程都会在内存中分开?我的直觉是我不需要互斥锁,因为它们都是局部变量,这是错误的吗?LRESULTAPIENTRYEditSubclassProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam){if(uMsg==WM_GETDLGCODE)returnDLGC_WANTALLKEYS;elseif(uMsg==WM_CHAR){if((int)wParam==13){char*strCurrentCom

c - 解码文件

#include#includeconstintKEY=111;voidencryptStrA(char*sometext){intlength;length=strlen(sometext);for(inti=0;i我避开了一些棘手的事情文件以二进制模式打开在encryptStrA中,strlen函数没有直接放在循环条件中尽管如此,它仍然一直在输出“Hell”而不是“HelloWorld!”?更准确的说,是看到关键人物之后就全部砍掉。这是什么原因?我使用的操作系统中的每一行文本都以回车符(ASCII13)和换行符(10)结尾。 最佳答案

ruby - 使用 Ruby 在 Windows 中读取区域位置设置(国家代码)?

我正在尝试使用Ruby访问控制面板:区域和语言:位置:当前位置设置。我只对国家代码感兴趣。我得到的最接近的是来自系统区域设置的国家/地区代码,但这并不是我想要的。`systeminfo|findstr/B/C:"SystemLocale"`.to_s.upcase.strip[30..31]我希望有人知道。谢谢。 最佳答案 使用Win32API:require'Win32API'#SetupsomeWin32constantsGEOCLASS_NATION=16GEO_ISO2=4GEO_FRIENDLYNAME=8#Setupso

c - 如何使用句柄检索流程描述和公司名称?

如何使用句柄检索过程描述和公司名称。我正在使用WindowsAPI函数。 最佳答案 版本(和版权)信息存储在文件版本信息中。您可以使用GetFileVersionInfo获取它们功能。可以通过简单调用GetFileVersionInfo来检索版本以填充VS_FIXEDFILEINFO结构,但版权信息(在您的情况下为ProductName和CompanyName)存储在本地化/可本地化的文本字段中。例如看VerQueryValue功能。 关于c-如何使用句柄检索流程描述和公司名称?,我们在

c - 通过随机重命名覆盖 Windows 中的文件失败

我有一个文本文件,我想通过将其重写为临时文件然后覆盖原始文件来进行编辑。这段代码没有这样做,因为它被简化了,但它确实包含了我遇到的问题。在Windows上,当重命名函数失败时,EXAMPLE.TXT文件将在看似随机的运行次数后消失。我不知道为什么,但到目前为止它在Linux上运行良好。为什么会发生这种情况,我该如何从完全不同的方向解决它,例如在不重命名的情况下从程序中覆盖原始文件?此外,还有哪些其他更好的方法?此方法在Windows上还有其他缺陷,例如程序在调用remove之后但在重命名之前被用户关闭,这在Linux上不会有问题(在删除remove之后)?#include#includ

c++ - Winapi shell 扩展覆盖 Windows 命令

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我为我正在开发的一个小应用程序开发了一个非常基本的shell扩展。我已经使用它一段时间了,没有任何问题,但我只是注意到在Windowsxp中,在开始菜单->所有程序中,如果我右键单击那里的一个文件夹并选择“打开”或“探索”,我的小应用程序出现而不是资源管理器窗口。你可以想象,当我看到这一幕时,我是多么的高兴和自豪。我觉得这很奇怪,因为这是唯一发生这种情况的地方(到目前为止......)。我在“目

c# - 在 64 位机器上读取 Windows key 时出现问题

我想用一个简单的C#应用程序读取注册表中的Windowskey。但是在x64机器上,我只收到BBBBB-BBBBB-BBBBB-BBBBB-BBBBB作为key,这是错误的……我该如何解决这个问题?RegistryKeykey=RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64);RegistryKeysubkey=key.OpenSubKey("SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion");谢谢! 最佳答案